package br.com.duosoftware.orcamento.daos;

import br.com.duosoftware.orcamento.entidades.Acao;
import br.com.duosoftware.orcamento.entidades.PrevisaoFinanceira;
import java.util.List;

/**
 *
 * @author Daniel
 *
 */
public class PrevisaoFinanceiraDAO extends DAOGenerico {

    public void salvarOuAtualizar(PrevisaoFinanceira previsaoFinanceira) {
        salvarOuAtualizarPojo(previsaoFinanceira);
    }

    public void excluir(PrevisaoFinanceira previsaoFinanceira) {
        excluirPojo(previsaoFinanceira);
    }

    public PrevisaoFinanceira getPrevisaoFinanceiraPorId(long id) {
        return getPojo(PrevisaoFinanceira.class, id);
    }

    public List<PrevisaoFinanceira> listarPrevisoesFinanceiras() {
        return getPojos("FROM PrevisaoFinanceira previsaoFinanceira "
                + "ORDER BY previsaoFinanceira.id");
    }

    public List<PrevisaoFinanceira> listarPrevisoesFinanceiras(Acao acao) {
        return getPojos("FROM PrevisaoFinanceira previsaoFinanceira "
                + "WHERE previsaoFinanceira.acao.id = ? "
                + "ORDER BY previsaoFinanceira.id", acao.getId());
    }

    public double obterSomaDasPrevisoesFinanceiras(Acao acao, int ano) {

        double resultado = 0.0;

        try {

            resultado = getPojoCriterio("SELECT SUM(previsaoFinanceira.ano" + ano + ") "
                    + "FROM PrevisaoFinanceira previsaoFinanceira "
                    + "WHERE previsaoFinanceira.acao.id = ?", acao.getId());

        } catch (Exception e) {

        }

        return resultado;

    }
}
